pub trait EnumState: std::fmt::Debug + PartialEq {}
impl<T: std::fmt::Debug + PartialEq> EnumState for T {}